Computing devices can include complex firmware that runs an embedded operating system. Such computing devices are often called upon to run multiple processes collaboratively to perform a task. Further, these types of computing devices can share a number of resources and critical sections of code that need to be protected in order to perform a task. Complex systems can include two computing devices connected via an inter-device link where the two computing devices communicate and share critical sections of code.